package com.monster.starter.exception.common;

import com.monster.utils.StringUtils;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Map;

/**
 * 异常工具类
 * @author kuang
 */
@Component
public class ExceptionUtils {
    /**
     * 异常配置
     */
    @Autowired
    @Getter
    private ExceptionConfig exceptionConfig;
    /**
     * 创建返回的统一异常字符串
     * @param code 异常编码
     * @param info 异常信息
     * @param data 其他数据（暂时没有用）
     * @return
     */
    public String createResultString (String code, String info, Map<String,String> data) {
        StringBuffer result = new StringBuffer();
        result.append("{");
        result.append("\"code\":\"").append(code).append("\"");
        result.append(",");
        result.append("\"info\":\"").append(info).append("\"");
        result.append(",");
        result.append("\"time\":\"").append(System.currentTimeMillis()).append("\"");
        result.append("}");
        return result.toString();
    }
    /**
     * 获取异常编码
     *
     * @param code 编码
     * @return 显示的code
     */
    public String getCode(String code) {
        if (StringUtils.isBlank(code)) {
            code = exceptionConfig.getCode();
        }
        return code;
    }

    /**
     * 获取异常消息
     *
     * @param info 消息
     * @return 显示的消息
     */
    public String getMessage(String info) {
        if (StringUtils.isBlank(info)) {
            info = exceptionConfig.getMsg();
        }
        return info;
    }
}
